#!/usr/bin/env python
# -*- coding: UTF-8 -*-
'''
@Project ：group-learn 
@File    ：playwrightLearn.py
@IDE     ：PyCharm 
@Author  ：lcy-tester
@Date    ：2023/11/9 15:44 
'''
from playwright.sync_api import Page, expect

"""
playwright 官方文档
https://playwright.dev/python/docs/locators

"""
def test_baidu(page: Page):
    page.goto("http://www.lchyang.cn/")
    print(page.title())
    # 文本定位
    expect(page.get_by_text("首页")).to_be_visible()  # 断言 首页 两字 可见
    # 精准匹配
    expect(page.get_by_text("首 页", exact=True)).to_be_visible()
    # placeholder 定位
    page.get_by_placeholder("xxxx")
    # role定位
    page.get_by_role("button", name="新建")  # 查找按钮
    page.get_by_role("checkbox", name="ceshi").click()  # 查找单选框
    # label定位
    page.get_by_label("username").fill("admin")  # fill 填充文字
    page.get_by_label("password").type("admin", delay=200)  # 打字机效果 每个2ms 输入一个
    # 文字清空
    page.get_by_label("username").clear()
    # 鼠标悬浮
    page.get_by_role("button", name="Sign in").hover()
    # 可以层级递进查找
    locator = page.frame_locator("my-frame").get_by_role("button", name="Sign in")
    locator.click()



    # playwright 支持 selenium元素定位
    # XPATH
    page.locator("//span[text()='确定']")  # 自动识别为XPATH
    page.locator("xpath=//span[text()='确定']").click()   # 这样也可以，进行点击
    # CSS
    page.locator("button:nth-of-type(2)")
    page.locator("css=button:nth-of-type(2)").click()

    # 推master测试


